home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
FM Towns: Free Software Collection 7
/
FM Towns Free Software Collection 7.iso
/
taropyon
/
hewin
/
ccisrc
/
nifty.cci
< prev
next >
Wrap
Text File
|
1993-11-30
|
24KB
|
907 lines
/*************************************************************************
* "nifty.cci" : NIFTY-Serve 用センター処理
*-------------------------------------------------------------------------
* Last modified 1993. 4.19
* 1993.10.02
*************************************************************************/
#ifdef CENTERKEY
#undef CENTERKEY
#endif
#ifdef RECKEY
#undef RECKEY
#endif
#define CENTERKEY "NIFTY"
#define RECKEY _nifty_recKey
int _nifty_fenix;
char *_nifty_recKey;
#ifndef _NAV_IGNORE
char NiftyForumList[1024]; /* ナビゲーション用巡回フォーラムリスト */
#endif
int _NIFTY_init()
{
char *center;
if ( (center = NTM_centerAlloc( CENTERKEY )) != NULL )
{
NtmCenterSetName ( center, "NIFTY-Serve"); /* センタ名 */
NtmCenterSetFuncKey( center, "NIFTY"); /* 関数名 */
NtmCenterSetRecKey ( center, "NIFTY"); /* 記録用 */
NtmCenterSetRsPara ( center, -1, -1, -1 ); /* RS-232C */
NtmCenterSetRsBreak( center, 50 ); /* ブレーク */
NtmCenterSetCrWait ( center, 100 ); /* CRウェイト */
NtmCenterSetTel ( center, "XX-XXXX-XXXX" ); /* Tel. */
NtmCenterSetPara ( center, "-fenix 2" ); /* fenix */
NtmCenterSetModem1 ( center, "ATZ" ); /* モデム */
}
#ifndef _NAV_IGNORE
/* ナビゲーション用初期設定 */
strcpy( NiftyForumList, "FTOWNS1 FTOWNS2 FFMHOB FFMAV");
#endif
return (NORMAL);
}
/*************************************************************************
* ナビゲーション用初期化
*************************************************************************/
int _NIFTY_naviInit( char *ntm, char *center )
{
#ifndef _NAV_IGNORE
#ifndef _NIFNAV_IGNORE
NtmSetNaviServiceMode( ntm, 1 );
#else
NtmSetNaviServiceMode( ntm, 0 );
#endif
#endif
return (NORMAL);
}
/*************************************************************************
* パラメータの指定
*************************************************************************/
int _NIFTY_para( char *ntm, char *center )
{
char *keyWord;
char *id, *pw;
keyWord = NtmCenterGetKeyWord(center);
if ( NTM_centerConfig( keyWord ) == NORMAL )
{
id = NtmCenterGetID ( center );
pw = NtmCenterGetPassword( center );
if ( id[0] == 0 || pw[0] == 0 )
return (ERR);
return (NORMAL);
} else
return (ERR);
}
/*************************************************************************
* 処理の中断
*************************************************************************/
int _NIFTY_abort( char *ntm, char *center )
{
AplRecWrite("%s:Abort", RECKEY);
NTM_offline( ntm, DTR_OFF_TIME ); /* DTR を指定時間 OFF */
return (NORMAL);
}
/*************************************************************************
* [AUTO]メニュー処理
*************************************************************************/
int _NIFTY_autoMenu( char *ntm, char *center, int x, int y)
{
int ret;
char *obj;
char *mnu;
char title[128], tmp[128], tmBuf[32];
long loginTime;
loginTime = NtmCenterGetTime(center, NTM_TIME_LOGIN );
if ( loginTime )
{ sprintf( tmp, "Login time %s ", GetAsciiTime(tmBuf, loginTime) );
} else
{ strcpy ( tmp, "Login time XXXX/XX/XX XX:XX:XX");
}
obj = MNU_alloc(3);
MNU_setObj(obj, 0, MNU_MSG, 0 , tmp , NULL, 1, NULL, NULL );
MNU_setObj(obj, 1, MNU_NOR, 'O', "OFF 終了" , NULL, 1, NULL, NULL );
MNU_setObj(obj, 2, MNU_NOR, 'B', "OFF 強制回線切断", NULL, 2, NULL, NULL );
sprintf( title, "MENU : %s", NtmCenterGetName(center));
mnu = MNU_open( x, y, MNUATT_EXIT, obj, title );
ret = MNU_start ( mnu );
MNU_close(mnu);
MNU_free(obj);
switch ( ret )
{
case 1:
return NTM_callLogout( ntm );
case 2:
NTM_wait(3);
AplRecWrite("%s:Abort disconnect", RECKEY);
return NTM_offline(ntm, DTR_OFF_TIME);
}
return (NORMAL);
}
#ifdef _TAROPYON_SYSTEM
# include "niftylog.cci"
#endif
#ifndef _NIFNAV_IGNORE
# include "NAV/niftynav.cci"
#endif
/*************************************************************************
* ログイン処理
*************************************************************************/
int _NIFTY_login( char *ntm, char *center )
{
int i, ret, retry;
char *name, *tel, *id, *pw, *para;
int argc;
char *s, **argv;
long tm;
char *cns;
char *mos;
char *btn;
mos = NULL;
cns = NtmGetCnsPtr(ntm);
#ifdef _TAROPYON_SYSTEM
/* ログ保存行数を増やす */
if ( CnsGet_maxLinBuf(cns) < 99999 )
CnsSet_maxLinBuf(cns,99999);
#endif
_nifty_recKey = NtmCenterGetRecKey(center);
name = NtmCenterGetName ( center );
tel = NtmCenterGetTel ( center );
id = NtmCenterGetID ( center );
pw = NtmCenterGetPassword( center );
if ( tel[0] == 0 || id[0] == 0 || pw[0] == 0 )
{
_ntm_errmsg_no_setup_id_and_pw();
if ( _NIFTY_para( ntm, center ) )
return (ERR);
id = NtmCenterGetID ( center );
pw = NtmCenterGetPassword( center );
tel = NtmCenterGetTel ( center );
}
/* オプションパラメータの解析 */
_nifty_fenix = 2; /* ROAD 2 */
para = NtmCenterGetPara( center );
argc = FS_argSet( para, &argv );
if ( argc > 0 )
{
for ( i = 0; i < argc; ++i )
{ s = argv[i];
if ( strcmpi( s, "-fenix") == 0 )
{ s = argv[++i];
_nifty_fenix = atoi(s);
}
}
FS_argClear( argc, argv );
if ( _nifty_fenix < 1 || _nifty_fenix > 3 )
_nifty_fenix = 2;
}
_ntm_dspmsg_dial_start( name, tel, cns );
AplRecWrite("%s:Dial start tel.%s", RECKEY, tel );
if ( ntm_dialStart( ntm, tel ) != NORMAL )
{
ABORT: _NIFTY_abort( ntm, center );
if ( mos ) MOS_pop(mos);
return (ERR);
}
mos = MOS_push();
MOS_curType(MOSCUR_TIME);
MOS_CON();
AplRecWrite("%s:Connect", RECKEY );
NTM_wait(2);
if ( _nifty_fenix == 2 || _nifty_fenix == 3 )
{
if ( _nifty_fenix == 2 )
{ /* ROAD 2 */
retry = 0;
while ( 1 )
{
NTM_rsPuts( ntm, "@P\r");
ret = NTM_waitStr( ntm, 30, "*", NULL );
if ( ret == 0 )
{ break;
} else if ( ret == NTM_WAIT_CANCEL )
{ goto ABORT;
}
/* time over */
++retry;
if ( retry > 5 )
goto ABORT;
}
} else
{ /* ROAD 3 */
ret = NTM_waitStr( ntm, 30, "*", NULL );
if ( ret == NTM_WAIT_CANCEL )
goto ABORT;
}
retry = 0;
while ( 1 )
{
NTM_wait(1);
NTM_rsPuts(ntm, "C NIF\r");
NTM_wait(2);
ret = NTM_waitInstr(ntm,30," Enter Connection-ID --->", "*", NULL);
if ( ret == 0 ) /* "Connection-ID" */
{ break;
} else if ( ret == 1 ) /* "*" */
{ ++retry;
if ( retry > 30 )
goto ABORT;
} else /* Cancel or timeout */
goto ABORT;
}
} else
{ /* ROAD 1 */
retry = 0;
while ( 1 )
{ NTM_wait(1);
NTM_rsPuts(ntm,".00+");
ret = NTM_waitInstr(ntm, 30,"Enter Connection-ID --->",
".1", ".2", ".3", ".4", ".5",
".6", ".7", ".8", ".9",
"NO CARRIER", NULL );
if ( ret == 0 )
{ /* Connection-ID */
break;
} else if ( ret < 10 )
{ /* '*' */
++retry;
if ( retry > 30 )
goto ABORT;
} else
{ /* TIME OUT or "NO CARRIER" */
goto ABORT;
}
}
}
NTM_wait(1);
NTM_rsPuts(ntm,"SVC\r");
ret = NTM_waitStr( ntm, 30, " Enter User-ID --->", NULL );
if ( ret == NTM_WAIT_CANCEL )
goto ABORT;
NTM_wait(1);
NTM_rsPuts( ntm, id ); NTM_rsPuts(ntm,"\r");
ret = NTM_waitStr( ntm, 30, " Enter Password --->", NULL);
if ( ret == NTM_WAIT_CANCEL )
goto ABORT;
NTM_wait(1);
NTM_rsPuts( ntm, pw ); NTM_rsPuts(ntm,"\r");
/* ログイン時間 */
time(&tm);
NtmCenterSetTime( center, NTM_TIME_LOGIN, tm );
AplRecWrite("%s:Login successful", RECKEY );
MOS_pop(mos);
return (NORMAL);
}
/*************************************************************************
* ログアウト処理
*************************************************************************/
int _NIFTY_logout( char *ntm, char *center )
{
int ret;
long tm;
time(&tm);
NtmCenterSetTime( center, NTM_TIME_LOGOUT, tm );
AplRecWrite("%s:Logout", RECKEY);
NTM_wait(1);
NTM_rsPuts( ntm, "OFF\r");
if ( _nifty_fenix == 2 )
{ /* ROAD 2 */
ret = NTM_waitStr( ntm, 60, "*", NULL );
if ( ret == 0 )
{ NTM_wait(1);
NTM_rsPuts( ntm, "OFF\r");
}
NTM_waitInstr( ntm, 30, "NO CARRIER", NULL );
} else
{ NTM_waitInstr( ntm, 60, "ご利用誠にありがとうございました。", NULL );
}
NTM_offline(ntm,DTR_OFF_TIME);
AplRecWrite("%s:Disconnect", RECKEY);
#ifdef _TAROPYON_SYSTEM
nifty_log_save( ntm );
#endif
return (NORMAL);
}
/*************************************************************************
* 受信行のチェック
*************************************************************************/
int _NIFTY_lineCheck( char *ntm, char *buf )
{
return (NORMAL);
}
/*************************************************************************
* 入力文字列の送信
*************************************************************************/
int _NIFTY_inputCheck( char *ntm, char *s )
{
NTM_rsPuts( ntm, s );
NTM_rsPuts( ntm, "\r" );
return (NORMAL);
}
/*************************************************************************
* ID置換用
*************************************************************************/
char *_nif_amac = NULL;
int _nif_open_amac()
{
char tmp[256];
if ( _nif_amac == NULL )
{
if ( (_nif_amac = AMAC_allocWork(0)) == NULL )
return (ERR);
sprintf( tmp,"%s%s", AplGetStartPath(), "nifty_id.tbl" );
AMAC_load( _nif_amac, tmp );
}
return (NORMAL);
}
/*************************************************************************
* ID置換用メニュー
*************************************************************************/
int _nif_setAmac( char *ntm, int x, int y )
{
int ret;
char *obj;
char *mnu;
char *dlg;
char *s, id[8+4], handle[8+4];
char *fdl;
char *fn;
static char *_LOAD_TITLE = "LOAD ID TABLE DATA for NIFTY-Serve";
static char *_SAVE_TITLE = "SAVE ID TABLE DATA for NIFTY-Serve";
_nif_open_amac();
do
{
obj = MNU_alloc(3);
MNU_setObj(obj, 0, MNU_NOR, 'I', "Set ID & handle name", NULL, 1, NULL, NULL );
MNU_setObj(obj, 1, MNU_NOR, 'L', "Load ID table data" , NULL, 2, NULL, NULL );
MNU_setObj(obj, 2, MNU_NOR, 'S', "Save ID table data" , NULL, 3, NULL, NULL );
mnu = MNU_open( x, y, MNUATT_EXIT, obj, "ID REGISTRATION MENU" );
ret = MNU_start ( mnu );
MNU_close(mnu);
MNU_free(obj);
switch ( ret )
{
case 1:
id[0] = '\0';
dlg = DLG_getsOpen( DLGPOS_MOS_SET_HOME, DLGPOS_MOS_SET_HOME, 320,
"" );
DLG_getsSetTitle( dlg, "ID" );
ret = DLG_getsStart( dlg, 8, id );
id[8] = '\0';
DLG_getsClose(dlg);
if ( ret <= 0 )
{ ret = TRUE;
break;
}
if( (s = AMAC_getName( _nif_amac, id )) == NULL )
handle[0] = '\0';
else
{ /* 既に登録されている */
strncpy( handle, s, 8 );
handle[8] = '\0';
}
dlg = DLG_getsOpen( DLGPOS_MOS_SET_HOME, DLGPOS_MOS_SET_HOME, 320,
"ID:%s", id );
DLG_getsSetTitle( dlg, "HANDLE" );
ret = DLG_getsStart( dlg, 8, handle );
handle[8] = '\0';
DLG_getsClose(dlg);
if ( ret < 0 )
{ ret = TRUE;
break;
}
AMAC_setKey( _nif_amac, id, handle );
ret = 1;
break;
case 2: /* load */
if ( (fdl = FDL_open(0)) == NULL )
return (ERR);
FDL_set_title( fdl, _LOAD_TITLE );
FDL_set_wildcard( fdl, "*.tbl");
ret = FDL_start(fdl);
fn = FDL_get_filename(fdl);
if ( ret == NORMAL && strlen(fn) > 0 )
{
dlg = DLG_msgOpen( DLGPOS_CENTER_OF_SCN,DLGPOS_CENTER_OF_SCN,
6*60,12*6, C_MBLACK,C_DLGBASE, COLMIX(C_INFO,C_GRAY),
_LOAD_TITLE );
DLG_msgSetConfig( dlg, 4, 6, 12 );
DLG_msgClear( dlg, -1 );
DLG_msgPrintf(dlg,"\r\n" );
DLG_msgPrintf(dlg,"FILE NAME : %s\r\n", fn );
if ( AMAC_load( _nif_amac, fn ) != NORMAL )
DLG_msgPrintf(dlg,"@ LOAD ERROR!!r\n" );
else
DLG_msgPrintf(dlg,"Ok!!\r\n", fn );
MNU_wait(3);
DLG_msgClose(dlg);
}
FDL_close(fdl);
ret = 1;
break;
case 3: /* save */
if ( (fdl = FDL_open(0)) == NULL )
return (ERR);
FDL_set_title( fdl, _SAVE_TITLE );
FDL_set_wildcard( fdl, "*.tbl");
ret = FDL_start(fdl);
fn = FDL_get_filename(fdl);
if ( ret == NORMAL && strlen(fn) > 0 )
{
dlg = DLG_msgOpen( DLGPOS_CENTER_OF_SCN,DLGPOS_CENTER_OF_SCN,
6*60,12*6, C_MBLACK,C_DLGBASE, COLMIX(C_INFO,C_GRAY),
_SAVE_TITLE );
DLG_msgSetConfig( dlg, 4, 6, 12 );
DLG_msgClear( dlg, -1 );
DLG_msgPrintf(dlg,"\r\n" );
DLG_msgPrintf(dlg,"FILE NAME : %s\r\n", fn );
if ( AMAC_save( _nif_amac, fn, "NIFTY-Serve ID table" ) != NORMAL )
DLG_msgPrintf(dlg,"@ SAVE ERROR!!r\n" );
else
DLG_msgPrintf(dlg,"Ok!!\r\n", fn );
MNU_wait(3);
DLG_msgClose(dlg);
}
FDL_close(fdl);
ret = 1;
break;
default:
ret = 0;
break;
}
} while ( ret );
return (NORMAL);
}
/*************************************************************************
* フィルタ用関数 : 会議室のタイトルピックアップ
*************************************************************************/
int NiftyFilter_roomTitle( char *ntm, char *buf )
{
static int flag = 0;
static char *reptn_1 = NULL;
static char *reptn_2 = NULL;
if ( flag == 0 )
{ /* 検索パータンのコンパイル */
reptn_1 = RePtnAlloc("番号 発言 (未読) 最新 会議室名",0);
/* " 1 658 ( 0) 12/17 【7/ AV】フリートーク#5" */
reptn_2 = RePtnAlloc(".. ... (....) ../.. .*",0);
flag = 1;
}
if ( RePtnMatch( reptn_1, buf) == 0 )
{ NTM_puts(ntm,"\r\n");
NTM_puts(ntm,buf);
} else if ( RePtnMatch( reptn_2, buf) == 0 )
NTM_puts(ntm,buf);
return (0);
}
/*************************************************************************
* フィルタ用関数 : 発言タイトルのピックアップ
*************************************************************************/
int NiftyFilter_confTitle( char *ntm, char *buf )
{
int i, len;
char key[8+4], *name;
static int flag = 0;
static char *reptn_1 = NULL;
static char *reptn_2 = NULL;
static char *reptn_3 = NULL;
static char *reptn_4 = NULL;
static char *reptn_5 = NULL;
static char *reptn_6 = NULL;
if ( flag == 0 )
{
_nif_open_amac();
/* 検索パターンのコンパイル */
/* "- FORUM MES( 1):title… -" */
reptn_1 = RePtnAlloc("- [A-Z].* MES(.[0-9]):.* -",0);
/* "999/999 ABC01234 Handle title…" */
reptn_2 = RePtnAlloc("[0-9]../[0-9].. ...[0-9].... .* .*",0);
/*------------------------------------------------------------------*/
/* 通常会議室 */
/* "番号 ID 登録日 TO CO 題名" */
reptn_3 = RePtnAlloc("番号 ID 登録日 TO CO 題名",0);
/* " 3 ABC01234 12/07 22:53 0 title…" */
/* " ... ........ ../.. ..:.. ... ... .*" */
reptn_4 = RePtnAlloc(" ... ........ ../.. ..:.. ... ... .*",0);
/*----------------------------------------------------------------------*/
/* サイクリック型 */
/* "番号 ID 登録日 TO CO 題名" */
reptn_5 = RePtnAlloc("番号 ID 登録日 TO CO 題名",0);
/* " 999 ABC01234 12/22 23:49 00111 1 title…" */
reptn_6 = RePtnAlloc(" .[ 0-9]... ........ ../.. ..:.. ..... ... .*",0);
flag = 1;
}
if ( *buf == '-' )
{
if ( RePtnMatch( reptn_1, buf) == 0 )
{ NTM_puts(ntm,"\r\n");
NTM_puts(ntm,buf);
}
} else
{
len = strlen(buf);
if ( buf < 18 )
return;
if ( strncmp(buf,"番号",4) == 0 )
{
if ( RePtnMatch( reptn_3, buf) == 0
|| RePtnMatch( reptn_5, buf) == 0 )
{ NTM_puts(ntm,"\r\n");
NTM_puts(ntm,buf);
}
} else if ( strchr(buf,'/') )
{
if ( RePtnMatch( reptn_2, buf) == 0 )
NTM_puts(ntm,buf);
else if ( RePtnMatch( reptn_4, buf) == 0 )
{
/* " 3 ABC01234 12/07 22:53 0 title…" */
strncpy( key, &buf[5], 8 ); key[8] = '\0';
if ( (name = AMAC_getName( _nif_amac, key )) != NULL )
{
for ( i = 0; i < 8; ++i )
{ if ( *name )
{ buf[5+i] = *name;
++name;
} else
buf[5+i] = ' ';
}
}
NTM_puts(ntm,buf);
} else if ( RePtnMatch( reptn_6, buf) == 0 )
{
/* " 999 ABC01234 12/22 23:49 00111 1 title…" */
strncpy( key, &buf[7], 8 ); key[8] = '\0';
if ( (name = AMAC_getName( _nif_amac, key )) != NULL )
{
for ( i = 0; i < 8; ++i )
{ if ( *name )
{ buf[7+i] = *name;
++name;
} else
buf[7+i] = ' ';
}
}
NTM_puts(ntm,buf);
}
}
}
return (0);
}
char *_niftyFilter_reptn_rtc = NULL;
/*************************************************************************
* フィルタ用関数 : リアルタイム会議室
*************************************************************************/
int NiftyFilter_rtc( char *ntm, char *buf )
{
if ( _niftyFilter_reptn_rtc == NULL )
{ _niftyFilter_reptn_rtc
= RePtnAlloc("([0-9],.*).*",0);
}
if ( *buf == '(' )
{ if ( RePtnMatch( _niftyFilter_reptn_rtc, buf) == 0 )
NTM_puts(ntm,buf);
}
}
int _nif_set_rtcFilter( char *ntm )
{
char *dlg;
int ret, ch;
char tmp[16], ptn[128];
tmp[0] = '\0';
dlg = DLG_getsOpen( DLGPOS_MOS_SET_HOME, DLGPOS_MOS_SET_HOME, 320,
"表示するチャンネルを指定してください。\n (指定のない場合はすべて) ");
DLG_getsSetTitle( dlg, "RTC FILTER" );
ret = DLG_getsStart( dlg, 15, tmp );
DLG_getsClose(dlg);
if ( ret >= 0 )
{
if ( ret == 0 )
strcpy( ptn, "([0-9]*,.*)");
else
{
if ( (ch = atoi(tmp)) < 1 )
return (ERR);
sprintf( ptn, "(%d,.*)", ch );
}
if ( _niftyFilter_reptn_rtc )
RePtnFree(_niftyFilter_reptn_rtc);
_niftyFilter_reptn_rtc = RePtnAlloc(ptn,0);
_ntm_setFilterFunc( ntm, "NiftyFilter_rtc");
return (NORMAL);
} else
return (ERR);
}
/*************************************************************************
* フィルタ用関数 : データライブラリ
*************************************************************************/
int NiftyFilter_dataLibrary( char *ntm, char *buf )
{
int i, len, sub;
char *center;
char *s, *t, fn[16], downFn[128];
char key[8+4], *name;
static int flag = 0;
static char *reptn_1 = NULL;
static char *reptn_2 = NULL;
static char *reptn_3 = NULL;
static int headerLevel = 0;
if ( flag == 0 )
{
_nif_open_amac();
/* "番号 ID 登録日付 バイト 参照 データ名" */
reptn_1 = RePtnAlloc("番号 ID 登録日付 バイト 参照 データ名",0);
/* " 48 ABC01234 93/01/01 99999 999 B FILENAME.SUB" */
reptn_2 = RePtnAlloc("..... ........ ../../.. ....... .... . .*",1);
reptn_3 = RePtnAlloc("処理 (.*)",0);
flag = 1;
}
len = strlen(buf);
if ( len > 42 && RePtnMatch( reptn_1, buf) == 0 )
{ NTM_puts(ntm,"\r\n");
NTM_puts(ntm,buf);
headerLevel = 0;
} else if ( len > 40 && RePtnMatch( reptn_2, buf) == 0 )
{
/* " 48 ABC01234 93/01/01 99999 999 B FILENAME.SUB" */
strncpy( key, &buf[6], 8 ); key[8] = '\0';
if ( (name = AMAC_getName( _nif_amac, key )) != NULL )
{
for ( i = 0; i < 8; ++i )
{ if ( *name )
{ buf[6+i] = *name;
++name;
} else
buf[6+i] = ' ';
}
}
NTM_puts(ntm,buf);
headerLevel = 0;
} else if ( len > 10 && strncmp( buf, "データ名:", 10) == 0 )
{ /* ダウンロードファイル名設定 */
NTM_puts( ntm, "\r\n" );
NTM_puts( ntm, buf );
headerLevel = 1;
s = &buf[10];
if ( isspace(*s) )
return;
t = fn;
len = 0;
sub = 0;
while ( len < 13 )
{
if ( *s == '\0' || isspace(*s) )
{ *t = '\0';
break;
} else if ( *s == '.' )
sub = 1;
*t = *s;
++t;
++s;
++len;
}
if ( len > 12 )
return;
if ( sub == 0 && len < 8 && *s )
{
while( isspace(*s) )
++s;
if ( *s == '.' )
{ /* 拡張子 */
while ( len < 13 )
{ if ( *s == '\0' || isspace(*s) )
{ *t = '\0';
break;
}
*t = *s;
++s;
++t;
++len;
}
if ( len > 12 )
return;
}
}
if ( (center = NtmGetCenterPtr(ntm)) != NULL )
{ /* センター名の指定あり */
s = NtmCenterGetDownDir(center);
if ( s && *s )
sprintf( downFn, "%s/%s", s, fn );
} else
strcpy( downFn, fn );
NTM_setCmdStr( ntm, downFn );
} else if ( headerLevel > 0 )
{
if ( headerLevel < 7 )
{
if ( strncmp( &buf[8], ":",2) == 0 )
{ NTM_puts( ntm, buf );
++headerLevel;
}
} else
{ if ( RePtnMatch( reptn_3, buf) == 0 )
{ headerLevel = 0;
} else
NTM_puts( ntm, buf );
}
}
return (NORMAL);
}
#if 0 /* 未完成 */
/*************************************************************************
* フィルタ用関数 : SEND対応用
*************************************************************************/
int NiftyFilter_send( char *ntm, char *buf )
{
}
#endif
/*************************************************************************
* フィルタ設定メニュー
*************************************************************************/
int _NIFTY_filterMenu( char *ntm, int x, int y )
{
int ret;
char *obj;
char *mnu;
obj = MNU_alloc(10);
MNU_setObj(obj, 0, MNU_NOR, 'F', "Set filter pattern" , NULL, 1, NULL, NULL );
MNU_setObj(obj, 1, MNU_NOR, 'O', "Filter mode off" , NULL, 2, NULL, NULL );
MNU_setObj(obj, 2, MNU_NOR, 'T', "Filter test" , NULL, 3, NULL, NULL );
MNU_setObj(obj, 3, MNU_BLK, 0 , NULL , NULL, 0, NULL, NULL );
MNU_setObj(obj, 4, MNU_NOR, '1', "Room title" , NULL, 4, NULL, NULL );
MNU_setObj(obj, 5, MNU_NOR, '2', "Conferrence title" , NULL, 5, NULL, NULL );
MNU_setObj(obj, 6, MNU_NOR, '3', "Data library" , NULL, 6, NULL, NULL );
MNU_setObj(obj, 7, MNU_NOR, '4', "Real time conferrence", NULL, 7, NULL, NULL );
MNU_setObj(obj, 8, MNU_BLK, 0 , NULL , NULL, 0, NULL, NULL );
MNU_setObj(obj, 9, MNU_NOR, 'H', "Register Handle" , NULL, 8, NULL, NULL );
mnu = MNU_open( x, y, MNUATT_EXIT, obj, "FILTER MENU" );
ret = MNU_start ( mnu );
MNU_close(mnu);
MNU_free(obj);
switch ( ret )
{
case 1:
_ntm_inputFilterPtn( ntm );
break;
case 2: /* filter off */
NtmSetFilterPtn ( ntm, "",0 );
NtmSetFilterFunc( ntm, NULL );
NtmFilterModeOff( ntm );
break;
case 3:
_ntm_filterTest( ntm );
break;
case 4:
_ntm_setFilterFunc( ntm, "NiftyFilter_roomTitle");
break;
case 5:
_ntm_setFilterFunc( ntm, "NiftyFilter_confTitle");
break;
case 6:
_ntm_setFilterFunc( ntm, "NiftyFilter_dataLibrary");
break;
case 7: /* リアルタイム会議室 */
_nif_set_rtcFilter( ntm );
break;
case 8: /* ハンドル登録 */
_nif_setAmac(ntm,x,y);
break;
}
return (NORMAL);
}
int CCI_dspNiftyStt()
{
char *center;
char *name;
long loginTime, logoutTime;
char t1[32], t2[32];
if ( (center = NTM_getCenter(CENTERKEY)) == NULL )
return (ERR);
name = NtmCenterGetName(center);
loginTime = NtmCenterGetTime( center, NTM_TIME_LOGIN );
logoutTime = NtmCenterGetTime( center, NTM_TIME_LOGOUT );
DLG_tmpMsgBox( DLGPOS_CENTER_OF_SCN, DLGPOS_CENTER_OF_SCN,
C_MBLACK, C_DLGBASE, COLMIX(C_INFO,C_GRAY),
" センター名 : %s\n Login time %s \n Last logout time %s ",
name, GetAsciiTime(t1, loginTime), GetAsciiTime(t2,logoutTime) );
return (NORMAL);
}
#undef CENTERKEY
#undef RECKEY